package com.github.fujianlian.klinechart.entity.h;

import com.github.fujianlian.klinechart.KLineEntity;
import com.github.fujianlian.klinechart.entity.BuyAndSellingRecodeBean;
import com.github.fujianlian.klinechart.entity.EntityGriddingInfo;

import java.util.List;
import java.util.Map;

/**
 * 蜡烛图实体接口
 * Created by tifezh on 2016/6/9.
 */
public interface ICandle extends IENE,  IBOLL {
    IMA getMa();

    boolean isTigger();

    float getPredictWin();


    float getStandardWinPrice();

    float getWinPersent();

    float getRetracPersent();


    float getLstMaxPrice();

    float getLstMinPrice();


    float getMaxPrice();

    float getMinPrice();

    KLineEntity.LowBuyInfo getLowBuyInfo();

    List<EntityGriddingInfo> getAllGriddingInfos();

    List<Float> getStopWins();


    float getStopWinTag();

    /**
     * 是否是止盈止损起点
     *
     * @return
     */
    boolean isStopPoint();

    /**
     * 开盘价
     */
    float getOpen();

    /**
     * 最高价
     */
    float getHigh();

    /**
     * 最低价
     */
    float getLow();

    /**
     * 收盘价
     */
    float getClose();


    /**
     * 步长
     *
     * @return
     */
    float getStepSize();

    /**
     * 基准价格
     *
     * @return
     */
    float getStandardPrice();

    /**
     * .
     * 止盈价
     *
     * @return
     */
    float getStop_profit_point();

    /**
     * .
     * 止损价
     *
     * @return
     */
    float getStop_loss_point();

    /**
     * .
     * 止损价
     *
     * @return
     */
    double getStopLost();

    /**
     * 止盈价
     *
     * @return
     */
    double getStopWin();

    /**
     * 移动成本价
     *
     * @return
     */
    float getMv_cost_price();

    float getCost_price();


    /**
     * 获取操作记录信息 用于展示
     *
     * @return
     */
    Map<Integer, List<BuyAndSellingRecodeBean>> getOperateRecodeMap();

    /**
     * 智能网格策略数据
     *
     * @return
     */
    List<Double> getSmartGridValues();

    <T> T getEntity(String key, Class<T> tClass);

    <T> T getEntity(Class<T> tClass);
}
